﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ActionTrackerEntities;
using FluentNHibernate.Mapping;

namespace ActionTrackerDAO.Mapeos
{
    public class ProyectoMap : ClassMap<Proyecto>
    {
        public ProyectoMap()
        {
            Table("Proyectos");
            LazyLoad();
            Id(x => x.IdProyecto).GeneratedBy.Identity().Column("IdProyecto");
            Map(x => x.FechaCreacion).Column("FechaCreacion");
            Map(x => x.FechaBaja).Column("FechaBaja");
            Map(x => x.Objetivo).Column("Objetivo").Not.Nullable().Length(100);
            HasMany(x => x.Acciones).KeyColumn("IdProyecto").Inverse();
            HasMany(x => x.Reuniones).KeyColumn("IdProyecto").Inverse();

            HasManyToMany(x => x.Usuarios).Table("UsuariosXProyectos")
                .ParentKeyColumn("IdProyecto")
                .ChildKeyColumn("IdUsuario")
                .Cascade.SaveUpdate();
        }
    }
}
